Improving the Performance of Conservative Generational Garbage Collection ; CU-CS-784-95
نویسندگان
چکیده
As object oriented features are added to programming languages such as C demands upon dynamic memory allocation systems increase Prototyping languages such as Smalltalk and LISP have long rec ognized the impact of garbage collection on improving reliability and programmer productivity but providing garbage collection in C is hard because pointers are di cult to reliably identify Conser vative generational collectors provide a partial solution to this problem at the cost of increased memory consumption due to memory fragmentation and tenured garbage This research introduces a new conservative generational garbage collection mechanism the Dynamic Threatening Boundary DTB that unlike previous collectors uses a dynamically updated threatening boundary to select objects eligible for reclamation By using object lifetime demographics to adjust the threatening boundary between generations backward during run time one policy using the DTB mechanism signi cantly reduced tenured garbage Because this mechanism clearly separates generation selection policy from implementation future researchers can easily develop other new policies that may reduce costs further Existing implementations of generational collectors for C often use an expensive virtual memory write trap to maintain pointers into the scavenged generation This research investigates the costs and bene ts of using an explicit store check instruction sequence to reduce the time overhead of the write barrier for generational collectors for C To further reduce memory fragmentation and time overhead this research also shows new ways to predict short lived objects and recognize long lived ones The e ectiveness of these techniques is evaluated by using trace driven simulation to compare them against several existing generational collection policies Although program behavior strongly in uences the costs of garbage collection relevant C program behaviors have not been measured and reported before Several well known C programs were instrumented and the results analyzed to provide data for future researchers incorporating garbage collection into languages that currently do not provide it
منابع مشابه
Understanding the Connectivity of Heap Objects ; CU-CS-923-01
Modern garbage collectors partition the set of heap objects to achieve the best performance. For example, generational garbage collectors partition objects by age and focus their efforts on the youngest objects. Partitioning by age works well for many programs because younger objects usually have short lifetimes and thus garbage collection of young objects is often able to free up many objects....
متن کاملImproving the Performance of Conservative Generational Garbage Collection
As object oriented features are added to programming languages such as C demands upon dynamic memory allocation systems increase Prototyping languages such as Smalltalk and LISP have long rec ognized the impact of garbage collection on improving reliability and programmer productivity but providing garbage collection in C is hard because pointers are di cult to reliably identify Conser vative g...
متن کاملEnergy Consumption and Garbage Collection in Low-Powered Computing ; CU-CS-930-02
We have measured the energy efficiency of different memory management strategies on a high performance pocket computer. We conducted our study by measuring the energy consumption of eight C programs with four different memory management strategies each. The memory management strategies are: no deallocation, explicit deallocation, conservative mark-and-sweep garbage collection, and conservative ...
متن کامل